babl: add babl_space_with_trc
authorØyvind Kolås <pippin@gimp.org>
Wed, 18 Jul 2018 20:05:27 +0000 (22:05 +0200)
committerØyvind Kolås <pippin@gimp.org>
Wed, 18 Jul 2018 20:05:30 +0000 (22:05 +0200)
Permitting to create variants of a space that shared the primaries
but use a different TRC function.

babl/babl-space.c
babl/babl.h
export-symbols

index 482a21c43b2be9bce520096a127894329c3238d3..9a78d380747d22acd1501786fa35459465cef489 100644 (file)
@@ -1034,6 +1034,26 @@ const Babl *babl_space_match_trc_matrix (const Babl *trc_red,
   return NULL;
 }
 
+const Babl *babl_space_with_trc (const Babl *babl, const Babl *trc)
+{
+  double xw, yw, xr, yr, xg, yg, xb, yb;
+  const Babl *red_trc = NULL;
+  const Babl *green_trc = NULL;
+  const Babl *blue_trc = NULL;
+
+  babl_space_get (babl,
+                  &xw, &yw,
+                  &xr, &yr,
+                  &xg, &yg,
+                  &xb, &yb,
+                  &red_trc, &green_trc, &blue_trc);
+  if (red_trc == trc && green_trc == trc && blue_trc == trc)
+    return babl;
+  return babl_space_from_chromaticities (NULL,
+                                         xw, yw, xr, yr, xg, yg, xb, yb, trc, trc, trc,
+                                         BABL_SPACE_FLAG_EQUALIZE);
+
+}
 
 void babl_space_get (const Babl *babl,
                      double *xw, double *yw,
index 95160241dbf92a87373a13da3e7aadfb8bacd0f3..6d58aaca624a2b26d72d94f58fe31b0e45467be0 100644 (file)
@@ -506,12 +506,19 @@ const Babl * babl_trc_gamma (double gamma);
 /**
  * babl_trc:
  *
- * Look up a TRC by name, "sRGB" "1.0" "linear" and "2.2" are recognized
+ * Look up a TRC by name, "sRGB" and "linear" are recognized
  * strings in a stock babl configuration.
  */
 const Babl * babl_trc (const char *name);
 
 
+/**
+ * babl_space_with_trc:
+ *
+ * Creates a variant of an existing space with different trc.
+ */
+const Babl *babl_space_with_trc (const Babl *space, const Babl *trc);
+
 /**
  * babl_space_get:
  *
index be9d4c69b83c9cdd012f115653f84ee533e6a134..d246e3d8264fc2db3ffc49055c1b37f4ea9212f2 100644 (file)
@@ -49,6 +49,7 @@ babl_space_get_icc
 babl_space_to_xyz
 babl_space_from_xyz
 babl_space_to_icc
+babl_space_with_trc
 babl_icc_make_space
 babl_icc_get_key
 babl_ticks